﻿using Newtonsoft.Json;
using ProtoBuf;
using ProtoBuf.Serializers;

namespace Step4.Unit3.SystemMiddleWare.Utils
{
    /// <summary>
    /// Session的扩展类
    /// </summary>
    public static class SessionUtil  
    {

        //// 扩展方法，一定是"静态类中"的"静态方法"
        //// 使用序列化为Json格式
        //public static void Set<T>(this ISession session, string key, T obj)
        //{
        //    session.SetString(key, JsonConvert.SerializeObject(obj));
        //}

        //// NewTonSoft反序列化
        //public static T Get<T>(this ISession session, string key)
        //{
        //    return JsonConvert.DeserializeObject<T>(session.GetString(key));
        //}


        /// <summary>
        /// 将对象存到Session
        /// 使用ProtoBuf进行序列化
        /// </summary>
        public static void Set<T>(this ISession session, string key, T obj)
        {
            //var ms = new MemoryStream();  // 创建一个
            //ISerializer
        }

        // NewTonSoft反序列化
        public static T Get<T>(this ISession session, string key)
        {
            return JsonConvert.DeserializeObject<T>(session.GetString(key));
        }
    }
}
